home *** CD-ROM | disk | FTP | other *** search
-
- /*
- Copyright (c) 1991, 1992 by NeXT Computer, Inc as an unpublished work.
- All rights reserved.
- */
-
- #import <objc/Object.h>
- #import <appkit/color.h>
- #import <ri/ri.h>
- #import <ri/slo.h>
- #import <objc/zone.h>
-
- typedef struct {
- SLO_VISSYMDEF symb; /* the slo symbol */
- union {
- float fval;
- RtPoint pval;
- NXColor cval;
- char *sval;
- } value; /* the value this arg has */
- RtPoint _rgbv;
- } SLOArgs;
-
- @interface N3DShader : Object
- {
- NXColor color; /* expressed as an NXColor until the RiColor call */
- float transparency;
- char *shader;
- SLO_TYPE shaderType;
- int shaderArgCount; /* size of following array */
- SLOArgs *shaderArgs; /* dynamic array of shader args */
- NXZone *zone;
-
- /* private stuff */
- RtToken *_sTokens;
- RtPointer *_sValues;
- BOOL _doColor;
- RtColor _rgbColor;
- RtColor _rgbOpacity;
- char *_rsname;
- void *_N3Dprivate;
- }
-
- - init;
- - initWithShader:(const char *)aShader;
- - free;
-
- - setShader:(const char *)aShader;
- - (const char *)shader;
- - setColor:(NXColor)aColor;
- - (NXColor)color;
- - setUseColor:(BOOL)flag;
- - (BOOL)doesUseColor;
- - setTransparency:(float)value;
- - (float)transparency;
- - (int)shaderArgCount;
- - (const char *)shaderArgNameAt:(int)i;
- - (SLO_TYPE)shaderArgType:(const char *)aName;
- - (BOOL)isShaderArg:(const char *)aName;
- - (SLO_TYPE)shaderType;
- - setShaderArg:(const char *)aName floatValue:(float)fv;
- - setShaderArg:(const char *)aName stringValue:(const char *)sv;
- - setShaderArg:(const char *)aName pointValue:(RtPoint)pv;
- - setShaderArg:(const char *)aName colorValue:(NXColor)cv;
- - getShaderArg:(const char *)aName floatValue:(float *)fvp;
- - getShaderArg:(const char *)aName stringValue:(const char **)sv;
- - getShaderArg:(const char *)aName pointValue:(RtPoint *)pvp;
- - getShaderArg:(const char *)aName colorValue:(NXColor *)cvp;
- - resetShaderArg:(const char *)aName; /* restores default value */
-
- - set;
-
- - read:(NXTypedStream *)stream;
- - write:(NXTypedStream *)stream;
-
- @end
-